package com.settlement.system.common.enums;

/**
 * 微信视频号账单 资金类型
 * @author author
 */
public enum WxsphBillDetailFundsTypeEnum implements Code<Integer> {
    /**
     * 资金类型；1 订单支付收入,2 订单手续费,3 退款,4 提现,5 提现失败退票,10 联盟抽佣,11 平台抽佣,12 团长抽佣,13 返佣人气卡,
     */
    /**
     * 订单支付收入
     */
    ZERO(1,"订单支付收入"),
    /**
     * 订单手续费
     */
    ONE(2,"订单手续费"),
    /**
     * 退款
     */
    TWO(3,"退款"),
    /**
     * 提现
     */
    FOUR(4,"提现"),
    /**
     * 提现失败退票
     */
    FIVE(5,"提现失败退票"),
    /**
     * 联盟抽佣
     */
    TEN(10,"联盟抽佣"),
    /**
     * 平台抽佣（技术服务费视频号小店）
     */
    ELEVEN(11,"平台抽佣"),
    /**
     * 团长抽佣
     */
    TWELVE(12,"团长抽佣"),
    /**
     * 返佣人气卡（技术服务费_视频号小店（返佣人气卡））
     */
    THIRTEEN(13,"返佣人气卡"),
    /**
     * 运费险
     */
    T_16(16,"运费险");


    private Integer no;

    private String name;

    WxsphBillDetailFundsTypeEnum(Integer no, String name) {
        this.no = no;
        this.name = name;
    }


    public Integer getNo() {
        return no;
    }

    public String getName() {
        return name;
    }

    /**
     * 根据名称获取编码
     * @param name
     * @return
     */
    public static Integer getNoByName(String name) {
        WxsphBillDetailFundsTypeEnum[] enums = WxsphBillDetailFundsTypeEnum.values();
        for (int index = 0; index < enums.length; index++) {
            if(enums[index].getName().equals(name)){
                return enums[index].getNo();
            }
        }
        return null;
    }

    /**
     * 根据编码获取名称
     * @param no
     * @return
     */
    public static String getNameByNo(Integer no) {
        WxsphBillDetailFundsTypeEnum[] enums = values();
        for (int index = 0; index < enums.length; index++) {
            if (enums[index].getNo() == no) {
                return enums[index].getName();
            }
        }
        return null;
    }

    @Override
    public Integer code() {
        return no;
    }
}
